package test03.tst03;

/**
 *
 * 枚举类 - 特殊类 - 结合业务，定义相关预设的选项值
 *
 * @Author czl
 * @Date 2024-04-16
 */
public enum Grade {
    A("优秀") {
        @Override
        public String getScoreRange() {
            return "分数>=90 && 分数<=100";
        }
    }, B("良好") {
        @Override
        public String getScoreRange() {
            return "分数>=80 && 分数<90";
        }
    }, C("中等") {
        @Override
        public String getScoreRange() {
            return "分数>=70 && 分数<80";
        }
    }, D("合格") {
        @Override
        public String getScoreRange() {
            return "分数>=60 && 分数<70";
        }
    }, E("不合格") {
        @Override
        public String getScoreRange() {
            return "分数>=0 && 分数<60";
        }
    };

    /**
     * 等级中文的表示
     */
    private String value;

    /**
     * 枚举类中，构造方法可以不加访问修饰符 - 默认是 private
     *
     * @param value
     */
    Grade(String value) {
        this.value = value;
    }

    /**
     * 定义抽象方法
     *
     * @return 返回不同等级对应的分数范围
     */
    public abstract String getScoreRange();

    public String getValue() {
        return value;
    }

    @Override
    public String toString() {
        return this.value;
    }
}
